package com.caiheng.api.entity.estate;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 物业费订单对象 property_fee_order
 *
 * @author ruoyi
 * @date 2021-08-24
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("property_fee_order")
public class PropertyFeeOrder implements Serializable {

    private static final long serialVersionUID=1L;


    /**
    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /**
     * $column.columnComment
     */
    private String orderNo;

    /**
     *  小区名称
     */
    private String estateName;

    /**
     *  房屋id
     */
    private Integer roomId;

    /**
     *  物业公司名称
     */
    private String propertyName;

    /**
     * 来自平台  wxmini - 微信小程序  dymini - 抖音小程序
     */
    private String platform;
    /**
     * 小区id
     */
    private Integer estateId;

    /**
     *  支付方式  0  -微信支付  1 - 农商行支付
     */
    private Integer payPlatform;

    /**
     *  第三方支付商户id
     */
    private Integer payPlatformId;

    /**
     * 物业id
     */
    private Integer propertyId;

    /**
     * 用户id
     */
    private Integer userId;

    private String roomNo;

    /**
     *  房屋类型  0 - 高层 1 - 低层 2- 商业 3 - 别墅 4 - 其他
     */
    private Integer roomType;

    /**
     * 业主电话
     */
    private String phoneNum;

    /**
     * 物业费缴纳的实用面积数
     */
    private String roomAreas;

    /**
     * 缴纳的月份数
     */
    private Integer months;


    /**
     *  物业费月份数
     */
    private Integer wyfMonths;
    /**
     * 缴纳车位费的月份数
     */
    private Integer carMonths;
    /**
     * 缴纳水费的月份数
     */
    private Integer waterMonths;
    /**
     * 缴纳垃圾处理费的月份数
     */
    private Integer trashMonths;
    /**
     * 缴纳加压费的月份数
     */
    private Integer jiayaMonths;
    /**
     * 缴纳电费的月份数
     */
    private Integer electricMonths;


    private String nickName;

    private String realName;

    /**
     * 物业费金额
     */
    private BigDecimal wyfSinglePrice;

    /**
     * 物业费金额，最终需要交费的钱
     */
    private BigDecimal wyfFee;

    /**
     *  物业费 应交金额
     */
    private BigDecimal wyfTotalPrice;

    /**
     *  物业费折扣
     */
    private BigDecimal wyfYhRate;

    /**
     *   物业费  折扣优惠的价格
     */
    private BigDecimal wyfYhPrice;


    /**
     * 代收水费
     */
    private BigDecimal waterFee;
    /**
     *  水费单价
     */
    private BigDecimal waterSinglePrice;

    /**
     *  加压费
     */
    private BigDecimal jiaYaFee;

    /**
     *  加压优惠
     */
    private BigDecimal jiaYaYouhui;
    /**
     * 垃圾处理费
     */
    private BigDecimal trashFee;


    /**
     *  垃圾处理费优惠
     */
    private BigDecimal trashYouhui;
    /**
     * 代收电费
     */
    private BigDecimal electricFee;

    /**
     *  代收电费单价
     */
    private BigDecimal electricSinglePrice;
    /**
     * 车位费
     */
    private BigDecimal carFee;

    /**
     *  车位优惠
     */
    private BigDecimal carYouhui;


    /**
     *  车位费单价
     */
    private BigDecimal carSinglePrice;
    /**
     * 缴纳开始周期的时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date beginTime;

    /**
     * 缴纳结束周期的时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;


    /**
     * 订单状态   0 - 交费申请 1 - 已生成交费清单    2 - 待支付  3- 支付中  4 - 已支付 5 - 订单取消   6 - 已发起退款  7 - 退款成功 8 - 退款失败
     */
    private Integer state;

    /**
     *  抵扣比例
     */
    private Integer dkRate;


    private BigDecimal freeMoney;

    /**
     * 最终支付的金额
     */
    private BigDecimal payMoney;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    /**
     * 总需要支付金额
     */
    private BigDecimal totalMoney;

    /**
     * 订单创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 微信支付流水订单号
     */
    private String transactionId;

    /**
     * 微信订单号
     */
    private String outTradeNo;

    /**
     *是否开具纸质收据  0 - 未开具  1- 已开具
     */
    private Integer isOpenReceipt;

    /**
     *收据的图片地址
     */
    private String receiptImgUrl;

    /**
     *  收据的文件地址
     */
    private String receiptFilePath;

    /**
     * $column.columnComment
     */
    private String mchId;

    /**
     *  易货核销码
     */
    private String verifyCode;

    /**
     *  是否已核销  0 - 未核销 1 - 已核销
     */
    private Integer isVerify;

    /**
     *  退款订单号
     */
    private String refundOutTradeNo;
    /**
     *  退款流水号
     */
    private String refundTransactionId;
    /**
     *  退款状态  0 未退款 1 申请中 2 已退款  3 - 退款失败
     */
    private Integer refundStatus;
    /**
     *  退款理由
     */
    private String refundReason;
    /**
     *  退款 金额
     */
    private BigDecimal refundPrice;

    private Integer isDel;
    /**
     *  退款时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date refundTime;
    /**
     *  退款 响应信息
     */
    private String refundRespParam;

    /**
     *  核销时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date verifyTime;


    @TableField(exist = false)
    private Integer payMoneyFen;

    @TableField(exist = false)
    private String beginDate;

    @TableField(exist = false)
    private String endDate;

    @TableField(exist = false)
    private List<PropertyFeeOrderInfo> orderInfos;
}
